//题目描述
//有些人相信，人自出生开始就有3个生理周期，分别是：身体、情感和智力周期，周期分别为23、28和33天。
//每个周期都有一个高峰。在高峰期，人的表现在（身体、情感和智力）生理周期达到最好。

//由于3个生理周期有不同的周期长度，各自的高峰通常出现在不同的时刻。
//我们想知道这3个生理周期在哪一天同时到达高峰期（称之为三高峰期）。
//对每个生理周期，给定当年该生理周期某个高峰期（不必是第1个）开始到现在的天数。
//同时给定一个日期，用从当年第1天到该日期的天数来表示。
//你的任务是计算从给定的日期开始算起，到下一个三高峰期需要的天数。给定的日期不算。
//例如，如果给定的日期是第10天，下一个三高峰期将发生在第12天，则答案是2而不是3。
//如果三高峰期恰好出现在给定的日期，需要输出到下一个三高峰期所需的天数。

//输入描述
//输入文件包含多个数据块。
//第1行为整数N，接下来是一个空行，之后是N个数据块，每个数据块之间有一个空行。
//每个数据块包含多个测试数据，每个测试数据占一行，为4个整数，p, e, i, d，
//前三个整数分别代表当年身体、情感和智力生理周期某个高峰期开始到现在的天数，
//d代表给定的日期，d可能会比p, e, i中任何一个小，所有整数都是非负的，且最大为365，
//假定下一个三高峰期所需的天数在21252天以内，每个数据块最后一行为4个-1，代表该数据块结束。

//输出描述
//输出同样应该包含N个输出块，每两个输出块之间用一个空行隔开。
//对每个数据块中的每个测试数据，首先输出测试数据的序号，然后是一行信息标明下一个三高峰期所需的天数，格式详见样例输出。
#include<iostream>
using namespace std;
const int N = 21252;
int solve(int p, int e, int i, int d, int k)
{
	for(; (k - p) % 23; k++)
		for(; (k - e) % 28; k += 23)
			do{if(k > d + N)
				return -1;
				else if((k - p) % 23 == 0 && (k - e) % 23 && (k - i) % 23){
					return k;
				k += 23 * 28;
			}while((k - i) % 33);
}
int main()
{
	int p, e, i, d;
	int n, cnt = 0;
	cin >> n;
	while( cin >> p >> e >> i >> d && p != -1){
		int k = d + 1;
		cnt++;
		k = solve(p, e, i, d, k);
		if(k < 0){
			cout << "case " << cnt << ": the next triple peak occurs in" << N <<  "days." << endl;
			break;
		}
		else{
			cout << "case " << cnt << ": the next triple peak occurs in" << k - d <<  "days." << endl;
		}
	}
	return 0;
}
